package org.htw.osgi.renderservice;

import java.awt.Graphics2D;
import javax.servlet.http.*;
import org.htw.osgi.renderservice.essentials.*;

/**
 * Implementierung eines Kontextobjektes für den RenderService. 
 * Dieses Kontextobjekt bietet Informationen über die HTTP-Anfrage
 * and den RenderService. Es ermöglicht außerdem den Zugriff auf den 
 * Graphics Context auf das gerendert werden soll. Desweiteren
 * kann auf den RenderService selbst über das Kontextobjetk zugegriffen
 * werden um z.B. einen Fehler bei der Verarbeitung zu melden.
 * 
 * @author  Benjamin Friedrich (<a href="mailto:benjamin_friedrich@gmx.de">mailto:benjamin_friedrich@gmx.de</a>)
 * @version 1.0  Juni 2009
 */
public class RenderServiceContext 
extends      HttpServletRequestWrapper
implements   IRenderServiceContext 
{
	private Graphics2D     graphics;
	private IServiceFramework service;
	
	/**
	 * Konstruktor von RenderServiceContext
	 * 
	 * @param request HTTP-Request
	 */
	public RenderServiceContext(HttpServletRequest request)
	{
		super(request);
	}
	
	/*
	 * (non-Javadoc)
	 * @see org.htw.osgi.renderservice.essentials.IRenderServiceContext#getGraphics()
	 */
	@Override
	public Graphics2D getGraphics() 
	{
		return this.graphics;
	}

	/*
	 * (non-Javadoc)
	 * @see org.htw.osgi.renderservice.essentials.IRenderServiceContext#setGraphics(java.awt.Graphics2D)
	 */
	@Override
	public void setGraphics(Graphics2D g) 
	{
		this.graphics = g;
	}

	/*
	 * (non-Javadoc)
	 * @see org.htw.osgi.renderservice.essentials.IRenderServiceContext#getRenderService()
	 */
	@Override
	public IServiceFramework getRenderService() 
	{
		return this.service;
	}

	/*
	 * (non-Javadoc)
	 * @see org.htw.osgi.renderservice.essentials.IRenderServiceContext#setRenderService(org.htw.osgi.renderservice.essentials.IRenderService)
	 */
	@Override
	public void setRenderService(IServiceFramework service) 
	{
		this.service = service;
	}
}